﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Entities;
using System.Windows.Forms;
using DevExpress.Web.ASPxEditors;
using DevExpress.Web.ASPxClasses.Internal;
using DevExpress.Web.ASPxEditors;

public partial class pNegocioVerDatos : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (cmbNegocioCalle.IsCallback)
        {
            if (cmbNegocioCalle.Text.Length > 1)
            { 
                CargarCombosNegocio();
            }
        }

        if (!Page.IsPostBack)
        {
            if (Session["Email"] != null)
                Master.UsuarioRegistrado(Session["Email"].ToString());
            lblActualizacionOK.Visible = false;
            lblError.Visible = false;
            CargarCombosNegocioPrimeraVez();
            if (Request["IDNegocio"] != null)
            {
                CargarDatosNegocio(long.Parse(Request["IDNegocio"]));
                CargarCombosNegocio();
            }

        }

    }

    private void CargarCombosNegocio()
    {
        if (cmbNegocioCalle.Text != null)
        {
            cmbNegocioCalle.DataSource = Calle.BuscarPorLocalidadNombre(long.Parse(cmbNegocioLocalidad.Value.ToString()), cmbNegocioCalle.Text);
        }
        else
        {
            cmbNegocioCalle.DataSource = Calle.BuscarPorLocalidadNombre(long.Parse(cmbNegocioLocalidad.Value.ToString()), string.Empty);
        }
        cmbNegocioCalle.DataBind();
    }

    private void CargarCombosNegocioPrimeraVez()
    {
        cmbNegocioBarrio.DataSource = Barrio.BuscarTodos();
        cmbNegocioBarrio.DataBind();

        cmbNegocioPais.DataSource = Pais.BuscarTodos();
        cmbNegocioPais.DataBind();
        cmbNegocioPais.Items[0].Selected = true;

        cmbNegocioProvincia.DataSource = Provincia.BuscarPosPais(int.Parse(cmbNegocioPais.Value.ToString()));
        cmbNegocioProvincia.DataBind();
        cmbNegocioProvincia.Items[0].Selected = true;

        cmbNegocioLocalidad.DataSource = Localidad.BuscarPorProvincia(long.Parse(cmbNegocioProvincia.Value.ToString()));
        cmbNegocioLocalidad.DataBind();
        cmbNegocioLocalidad.Items[0].Selected = true;

        cmbNegocioCalle.DataSource = Calle.BuscarPorLocalidad(long.Parse(cmbNegocioLocalidad.Value.ToString()));
        cmbNegocioCalle.DataBind();
    }

    private long GuardarNegocio()
    {
        long longIDNegocio = 0;
        try
        {
            Negocio oNegocio = Negocio.BuscarUno(long.Parse(lblIdNegocio.Text),false);
            oNegocio.NombreNegocio = txtNegocioNombre.Text;
            oNegocio.RazonSocial = txtNegocioRazonSocial.Text;
            oNegocio.CUIT = txtNegocioCuit.Text;
            oNegocio.Email = txtNegocioEmail.Text;
            oNegocio.Telefono = txtNegocioTelefono.Text;
            oNegocio.Provincia.IDProvincia = long.Parse(cmbNegocioProvincia.Value.ToString());
            oNegocio.Pais.IDPais = long.Parse(cmbNegocioPais.Value.ToString());
            oNegocio.FechaAlta = System.DateTime.Now;
            oNegocio.NegocioEstado.IDNegocioEstado = 1;
            //Setea los datos de la dirección
            oNegocio.Direccion.Calle.IDCalle = long.Parse(cmbNegocioCalle.Value.ToString());
            oNegocio.Direccion.CodigoPostal = int.Parse(txtCodigoPostal.Text);
            oNegocio.Direccion.Departamento = txtNegocioDepartamento.Text;
            oNegocio.Direccion.Barrio.IDBarrio = long.Parse(cmbNegocioBarrio.Value.ToString());
            oNegocio.Direccion.Localidad.IDLocalidad = long.Parse(cmbNegocioLocalidad.Value.ToString());
            oNegocio.Direccion.Numero = int.Parse(txtNegocioNumero.Text);
            oNegocio.Direccion.Piso = txtNegocioPiso.Text;
            Negocio.Modificar(oNegocio);
            return oNegocio.IDNegocio;


        }
        catch (Exception ex)
        {
            lblError.Text = "Error en método guardar negocio, Descripción de error: " + ex.Message;
            return longIDNegocio;
        }
    }

    private void CargarDatosNegocio(long parIDNegocio)
    {
        try
        {
            lblIdNegocio.Text = parIDNegocio.ToString();
            Negocio oNegocio = Negocio.BuscarUno(parIDNegocio,false);
            txtNegocioNombre.Text = oNegocio.NombreNegocio;
            txtNegocioRazonSocial.Text = oNegocio.RazonSocial;
            txtNegocioCuit.Text = oNegocio.CUIT;
            txtNegocioEmail.Text = oNegocio.Email;
            txtNegocioTelefono.Text = oNegocio.Telefono;
            cmbNegocioProvincia.Text = oNegocio.Provincia.NombreProvincia;
            cmbNegocioPais.Text = oNegocio.Pais.NombrePais;
            //Setea los datos de la dirección
            cmbNegocioCalle.Text = oNegocio.Direccion.Calle.NombreCalle;
            txtCodigoPostal.Text = oNegocio.Direccion.CodigoPostal.ToString();
            txtNegocioDepartamento.Text = oNegocio.Direccion.Departamento;
            cmbNegocioLocalidad.Text = oNegocio.Direccion.Localidad.NombreLocalidad;
            cmbNegocioBarrio.Text = oNegocio.Direccion.Barrio.NombreBarrio; ;
            txtNegocioNumero.Text = oNegocio.Direccion.Numero.ToString();
            txtNegocioPiso.Text = oNegocio.Direccion.Piso.ToString();
        }
        catch (Exception ex)
        {
            lblError.Text = "Error en CargarDatosNegocio, Descripción de error: " + ex.Message;
        }
    }

#region eventos


    protected void cmbNegocioProvincia_SelectedIndexChanged(object sender, EventArgs e)
    {
        cmbNegocioLocalidad.DataSource = Localidad.BuscarPorProvincia(long.Parse(cmbNegocioProvincia.SelectedItem.Value.ToString()));
        cmbNegocioLocalidad.DataBind();
        CargarCombosNegocio();
        cmbNegocioCalle.Text = string.Empty;
    }

    protected void cmbNegocioPais_SelectedIndexChanged(object sender, EventArgs e)
    {

        cmbNegocioProvincia.DataSource = Provincia.BuscarPosPais(int.Parse(cmbNegocioPais.SelectedItem.Value.ToString()));
        cmbNegocioProvincia.DataBind();
        cmbNegocioProvincia.Items[0].Selected = true;

        cmbNegocioLocalidad.DataSource = Localidad.BuscarPorProvincia(long.Parse(cmbNegocioProvincia.SelectedItem.Value.ToString()));
        cmbNegocioLocalidad.DataBind();
        cmbNegocioLocalidad.Items[0].Selected = true;

        CargarCombosNegocio();
        cmbNegocioCalle.Text = string.Empty;
    }

    protected void cmbNegocioCalle_Callback(object sender, DevExpress.Web.ASPxClasses.CallbackEventArgsBase e)
    {
        CargarCombosNegocio();
    }


    protected void btnSiguiente_Click(object sender, EventArgs e)
    {
        Response.Redirect("pNegocios.aspx");
    }
#endregion
    protected void btnPopConfirmar_Click(object sender, EventArgs e)
    {
        long IDNegocio = GuardarNegocio();
        //Si guardo ok el negocio devuleve el ID del nuevo negocio y lo redireccionamos a el paso 2
        //pasandole por parámetro el id
        if (IDNegocio > 0)
            lblActualizacionOK.Visible = true;
        //sino muestro el error en pantalla que ya está seteado en el evento guardar
        else
            lblError.Visible = true;
    }
}